<?php

class View{
	
	/**
	 * Fonction chargée d'afficher la page. S'appelle par View::affichePage()
	 * depuis le contrôleur.
	 * 
	 * La fonction initialise le template base.tpl, puis remplit le contenu
	 * avec les différentes fonctions.
	 * 
	 * @param $contenu
	 * 		Le contenu du cadre central de la page. Ce contenu sera très probablement
	 * 		obtenu à partir d'une autre partie de la vue (une partie suivant la page).
	 */
	public static function affichePage($contenu){
		
		$tpl = new Template("tpl");
		$tpl->set_file("base","base.tpl");
		
		$tpl->set_var("panier", View::affichePanier());
		$tpl->set_var("quicklog",View::afficheQuickLog());
		$tpl->set_var("filAriane",View::afficheFilAriane());
		$tpl->set_var("publicite", View::affichePublicite(1));
		$tpl->set_var("contenu",$contenu);
		$tpl->set_var("bottomTask",View::afficherBottomTask());
		$tpl->parse("BASE", "base");
		$tpl->p("BASE");
	}
	
	
	/**
	 * Fonction chargée d'obtenir le contenu de la div "panier"
	 * du template base.tpl.
	 * 
	 *  Ce fichier fera très probablement appel à un autre template.
	 * 
	 */
	protected static function affichePanier(){
		$Panier = Session::getInstance()->getPanier();
		return VuePanier::afficherIco($Panier);
	}
	
	
	/**
	 * Fonction chargée d'obtenir le fil d'ariane. A voir comment 
	 * on traite le problème...
	 */
	protected static function afficheFilAriane(){
		
		$tree = "";
		
		if (isset($_GET['journal']))
			$journalid = $_GET['journal'];
		
		if (isset($_GET['edition']))
			$editionid = $_GET['edition'];
		
		if (isset($_GET['page'])){
			$page = $_GET['page'];
			switch ($page) {
				case "accueil":
					$tree = $tree." <a href=\"index.php\">"."Accueil"."</a> /";
			    	break;
				case "catalogue":
					$tree = $tree." <a href=\"index.php?page=catalogue\">"."Catalogue E-Papers"."</a> /";		
					break;
				case "moncompte":
					$tree = $tree." <a href=\"index.php?page=moncompte\">"."Mon Compte"."</a> /";
					break;
				case "aide":
					$tree = $tree." <a href=\"index.php?page=aide\">"."Aide"."</a> /";		
					break;
				case "journal":
					$tree = $tree." <a href=\"index.php?page=catalogue\">"."Catalogue E-Papers"."</a> /";
					if (isset($_GET['journal'])){
						$Journal= new Journal();
						$Journal->recup($journalid);
						$tree = $tree." <a href=\"index.php?page=journal&journal=".$_GET['journal']."\">".$Journal->getNom()."</a> /";
					}
					break;
				case "edition":
					$tree = $tree." <a href=\"index.php?page=catalogue\">"."Catalogue E-Papers"."</a> /";
					if (isset($_GET['journal'])){
						$Journal= new Journal();
						$Journal->recup($journalid);
						$tree = $tree." <a href=\"index.php?page=journal&journal=".$journalid."\">".$Journal->getNom()."</a> /";
					}
					if (isset($_GET['edition'])){
						$edition= new Edition();
						$edition = $edition->recupEdition($_GET['edition']);
						$tree = $tree." <a href=\"index.php?page=journal&journal=".$edition->getJournal()->getIDJournal()."\">".$edition->getJournal()->getNom()."</a> /";
						$tree = $tree." <a href=\"index.php?page=edition&edition=".$editionid."\">".$edition->getDate()."</a> /";
					}
					break;
				default:
			}
		}
		return $tree;
	}
	
	/**
	 * Fonction chargée d'obtenir la publicité à afficher.
	 */
	protected static function affichePublicite($Position){
		$Publicite = new Publicite();
		$Journal = new Journal();
		
		$Publicite->recupLastPublicite($Position);
		if($Publicite->getIdJournal()==null){
			$Publicite->recupPublicite(0);
		}
		
		$Journal->recup($Publicite->getIdJournal());
		$tpl = new Template("tpl");
		$tpl->set_file("publicite","publicite.tpl");	
		$tpl->set_var("PUBLICITEJOURNAL",$Journal->getURL());	
		$tpl->set_var("PUBLICITEURL",$Publicite->getURL());
		$tpl->parse("PUB","publicite");
		return $tpl->get("PUB");
	}
	
	public static function afficherPageAdministrateur($contenu){
		
		$tpl = new Template("tpl/administrateur");
		$tpl->set_file("baseAdministrateur","baseAdministrateur.tpl");
		
		$tpl->set_var("contenu",$contenu);
		
		$tpl->parse("BASE", "baseAdministrateur");
		$tpl->p("BASE");
	}
	
	public static function afficherBottomTask(){
		$tpl = new Template("tpl");
		$tpl->set_file("page","footer.tpl");
		$tpl->parse("PAGE","page");
		return $tpl->get("PAGE");
	}
	
	protected static function afficheQuickLog(){
		$tpl = new Template("tpl");
		$tpl->set_file("quicklog","quicklog.tpl");
		
		$tpl->set_block("quicklog","non_log","NonLog");
		$tpl->set_block("quicklog","log","Log_");
		
		$client = Session::getInstance()->getCompteClient();
		if (!is_null($client)){
			$tpl->set_var("NOM",$client->getNom());
			$tpl->set_var("PRENOM",$client->getPrenom());
			$tpl->parse("Log_","log",true);
		}
		else
			$tpl->parse("NonLog","non_log",true);
			
		$tpl->parse("QUICKLOG","quicklog");
		return $tpl->get("QUICKLOG");
			
		
	}
}
?>